A user interface is a computer program that allows a user to interact with a computer and computer-controlled devices. A graphical user interface or GUI presents graphical icons, visual indicators or graphical elements, sometimes in conjunction with text, labels or text navigation, to represent information and actions available to the user. Instead of offering only text menus, or requiring typed commands, an action is usually performed through direct manipulation of graphical interface elements.
A control is an interface element with which the user interacts, such as a window or a text box. A control provides a single interaction point for the direct manipulation of a particular kind of data. Controls are building blocks for user interfaces. When combined in an application, controls hold the data processed by the application and control the available interactions on the data. Controls are typically objects that are contained within form objects. Each type of control object has its own set of properties, methods, and events that make it suitable for a particular purpose. Controls can frequently be manipulated in a designer and code can be written to add controls dynamically at run time.
Generic controls are often packaged into toolkits. The controls in the toolkits are used by programmers to build graphical user interfaces (GUIs). Most operating systems include a set of customizable controls that a programmer can incorporate into an application. Each type of control generally is defined as a class by object-oriented programming (OOP). Therefore, many controls are derived via class inheritance.
A grid view or a datagrid is a graphical user interface control that presents a tabular view of data. Some toolkits distinguish between a grid and a datagrid. If this is the case, the term datagrid refers specifically to a control that can be linked to a data source such as a database, a web service or any other type of data source with little or no effort on the part of a programmer. One common use of a datagrid is displaying lists of products on a web site or displaying lists of files, such as, for example, in the “Details” view in Windows XP file managers. Grid views are sometimes referred to as spreadsheet controls because a grid view may visually resemble a spreadsheet application.
Some existing grid-type controls allow a developer to display rows of data. These controls can be bound to very large data sources but doing so may cause severe performance issues because each row of data can itself contain several fields and each field is typically displayed in a separate control. Thus the total number of controls can very quickly add up. For example, if there were 10,000 rows of data in a data source with 20 fields of data in each row, the number of controls created to display this data could be over 200,000.